# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default The Simpsons Hit And Run Template

game: The Simpsons Hit And Run
requires:
  version: 0.6.6 # Version of Archipelago required for this yaml to work as expected.

The Simpsons Hit And Run:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  goal:
    # Choose your victory condition.
    goal_all_missions_complete: 50
    goal_all_story_missions_complete: 0
    goal_final_missionl7m7: 0
    goal_wasps_and_cards_collected: 0

  levelsanity:
    # Choose how you want missions to be sent in the multiworld. Levels logically
    # require the level access item and at least 1 car from that level or higher.
    # You're guaranteed to start with a level and it's default car with either option.
    # Linear will add progressive levels to the pool. You'll start with Level 1 and
    # the Family Sedan, then get the next level each time you receive a progressive
    # level item. Levels will add levels to the pool. You'll start the game with
    # a random level and it's required items and receive levels from the multiworld.
    # Regardless of your choice, missions can be played in any order on an unlocked level.
    linear: 0
    levels: 50

  startingcarshuffle:
    # Choose whether to shuffle starting car between available cars from your starting level.
    # If disabled, you'll always start with your starting level's default car.
    'false': 0
    'true': 50

  shuffleattack:
    # Choose whether to add Attack to the pool for each character.
    # Valid options are Homer, Bart, Lisa, Marge, Apu, All, or None.
    ['All']

  shufflejump:
    # Choose whether to add Jump to the pool for each character.
    # Valid options are Homer, Bart, Lisa, Marge, Apu, All, or None.
    ['All']

  startjumplevel:
    # Choose how many Progressive Jump items to start with for each character.
    # Characters who aren't included in ShuffleJump will start with Progressive Jump Level 2.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 2
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-2: 0 # random value between 0 and 2

  shufflegagfinder:
    # Choose whether to add a Gagfinder to the pool for each Character that will be required to
    # unlock gags as that character. Valid options are Homer, Bart, Lisa, Marge, Apu, All, or None.
    # If None, gags will instead be locked until you receive their Level.
    ['All']

  shufflecheckeredflags:
    # Choose whether to add a Checkered Flag to the pool for each Character that will be required to
    # unlock races as that character. Valid options are Homer, Bart, Lisa, Marge, Apu, All, or None.
    # If None, races will instead be locked until you receive their Level.
    ['All']

  shuffleebrake:
    # Choose whether to shuffle ability to use the E-Brake for each character into the item pool.
    ['All']

  shuffleforward:
    # Choose whether to shuffle the ability to move forward or drive forward for each character into the item pool.
    # Valid options are Homer, Bart, Lisa, Marge, Apu, All, or None.
    # **THIS COULD CREATE VERY DIFFICULT SEEDS**
    ['None']

  earlyforward:
    # If enabled and forward is shuffled, try to place each specified character's Forward item early.
    # Valid options are Homer, Bart, Lisa, Marge, Apu, All, or None. Does nothing if the character's forward isn't shuffled.
    ['All']

  EnableWaspPercent:
    # Whether to include Wasps in goal requirements.
    # This setting is always treated as true if your
    # goal is Goal: Wasps and Cards Collected!
    'false': 0
    'true': 50

  wasppercent:
    # Percent of Wasps required to goal if Wasp Requirements is enabled.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 100
    50: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-100: 0 # random value between 10 and 100

  EnableCardPercent:
    # Whether to include Cards in goal requirements.
    # This setting is always treated as true if your
    # goal is Goal: Wasps and Cards Collected!
    'false': 0
    'true': 50

  cardpercent:
    # Percent of Cards required to goal if Card Requirements is enabled.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 100
    50: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-100: 0 # random value between 10 and 100

  shufflecards:
    # Randomize card locations. This option adds several possible locations for
    # cards. There will still be 49 total cards with 7 in each level.
    'false': 0
    'true': 50

  cardlogic:
    # Choose logic level for cards.
    # Carless: Cars are not considered at all in this logic level and cards that cannot be reached without them
    #          are not available locations for ShuffleCards.
    #          Note that the card on Level 6 that requires the Itchy and Scratchy Truck will still require it if ShuffleCards is false.
    # Cars: Cars are considered in whether you can reach a card.
    # Glitched: Glitches and speedrunning tricks are considered in whether you can reach a card.
    # ***CURRENTLY GLITCHED LOGIC LEVEL IS NOT SUPPORTED AND WILL RAISE AN ERROR AND FAIL GENERATION
    carless: 50
    cars: 0
    glitched: 0

  wasplogic:
    # Choose logic level for wasps.
    # Strict: Wasps cannot be broken with cars and logically require Attack items.
    # Unlockable: Adds a "Frink-o-Matic Wasp Bumper" item for each character that allows them to break wasps with cars.
    #             Wasps logically require the bumper and a car that can reach them or Attack items.
    # Cars: Wasps logically require a car that can reach them or Attack items.
    # Open: Wasps logically require Attack items but can be broken with cars.
    strict: 50
    unlockable: 0
    cars: 0
    open: 0

  missionlocks:
    # Add car requirements to a percentage of missions
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  minprice:
    # The minimum cost of any item in Gil's Shop. If this is greater than the max shop price, then the max will be used instead.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 500
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-500: 0 # random value between 0 and 500

  maxprice:
    # The maximum cost of any item in Gil's Shop.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 500
    300: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-500: 0 # random value between 0 and 500

  shopscalemod:
    # The multiplier for shop costs per levels
    # L2 costs = L1 * multiplier, L3 = L1 * 2(multiplier), etc
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 5
    2: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-5: 0 # random value between 1 and 5

  shophintpolicy:
    # Choose the level of hints sent when speaking to Gil for the first time on a level
    # All: Hint all items in Gil's shop
    # OnlyProg: Only hint progression items in Gil's shop
    # None: No shop hints will be created
    all: 50
    onlyprog: 0
    none: 0

  extrahintpolicy:
    # Place extra hints in various places.
    'false': 0
    'true': 50

  shuffletraffic:
    # Randomize traffic per level
    'false': 0
    'true': 50

  filler_traps:
    # How many fillers will be replaced with traps. 0 means no additional traps, 100 means all fillers are traps.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  eject:
    # Whether to include Eject traps in the item pool.
    'false': 0
    'true': 50

  duff:
    # Whether to include Duff traps in the item pool.
    'false': 0
    'true': 50

  launch:
    # Whether to include Launch traps in the item pool.
    'false': 0
    'true': 50

  hnr:
    # Whether to include Hit N Run traps in the item pool.
    'false': 0
    'true': 50

  traffictrap:
    # Whether to include Traffic traps in the item pool.
    'false': 0
    'true': 50

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
